package com.zp.drug.entity.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.excel.annotation.ExcelDictFormat;
import com.zp.common.excel.convert.ExcelDictConvert;
import com.zp.drug.entity.bo.DrugExportDetailBo;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 药品出库主视图对象
 *
 * @author zhang peng
 * @ date 2024-05-23
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ExcelIgnoreUnannotated
public class DrugExportMasterVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String exportId;

    /**
     * 出库单号
     */
    @ExcelProperty(value = "出库单号")
    private String documentNo;

    /**
     * 库存单位
     */
    private String storageId;

    /**
     * 出库日期
     */
    @ExcelProperty(value = "出库日期")
    private Date exportDate;

    /**
     * 收货方
     */
    @ExcelProperty(value = "收货方")
    private String receiverId;

    /**
     * 收货人
     */
    @ExcelProperty(value = "收货人")
    private String receiverUserId;

    /**
     * 应付款
     */
    @ExcelProperty(value = "应付款")
    private BigDecimal accountReceivable;

    /**
     * 实付款
     */
    @ExcelProperty(value = "实付款")
    private BigDecimal accountPayed;

    /**
     * 附加费
     */
    @ExcelProperty(value = "附加费")
    private BigDecimal additionalFee;

    /**
     * 出库类别
     */
    @ExcelProperty(value = "出库类别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "drug_storage_type")
    private String exportClass;

    /**
     * 付款方式(退货出库,付款方式必填)
     */
    @ExcelProperty(value = "付款方式(退货出库,付款方式必填)")
    private String accountType;

    /**
     * 记账标志
     */
    @ExcelProperty(value = "记账标志")
    private String accountIndicator;

    /**
     * 记账日期
     */
    @ExcelProperty(value = "记账日期")
    private Date acctDate;

    /**
     * 记账人
     */
    @ExcelProperty(value = "记账人")
    private String acctOperator;

    /**
     * 机构id
     */
    @ExcelProperty(value = "机构id")
    private String orgId;

    /**
     * 相对应的入库人员
     */
    @ExcelProperty(value = "相对应的入库人员")
    private String importOperator;

    /**
     * 相对应的入库日期
     */
    @ExcelProperty(value = "相对应的入库日期")
    private Date importDate;

    /**
     * 对应的入库主表ID(出库后,收货方批量入库时的主表ID)
     */
    @ExcelProperty(value = "对应的入库主表ID(出库后,收货方批量入库时的主表ID)")
    private String importMasterId;

    /**
     * 是否按批次 Y是 N否
     */
    @ExcelProperty(value = "是否按批次 Y是 N否", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String ifBatch;

    /**
     * 长阳药品出库查询默认0已查询1
     */
    @ExcelProperty(value = "长阳药品出库查询默认0已查询1")
    private String isSelect;

    @ExcelProperty(value = "库存单位")
    private String storageName;

    @ExcelProperty(value = "收货方")
    private String receiverIdName;

    /**
     * 保存的明细list
     */
    private List<DrugExportDetailBo> detailListSave;

}
